function classCore(){
	var me = this;
	
	me.startGame = function(){
		view.start();
	};
	
 	//onde o jogo começa :D
	me.updateGame = function(){
		me.movePlayer();
		me.atiraPlayer();
		me.moveTiros();
		view.updateLayers();
 	};
 	
 	me.movePlayer = function(){
    	//esquerda
    	if(configuracao.teclasPressionadas[37]){
    		if(configuracao.elementos["player1"].x>configuracao.width/5){
    			configuracao.elementos["player1"].left();
    		};
    	};
    	//direita
    	if(configuracao.teclasPressionadas[39]){
    		if(configuracao.elementos["player1"].x < configuracao.width/5*4){
    			configuracao.elementos["player1"].right();
    		};
    	};
 	};

 	me.atiraPlayer = function(){
    	//vai disparar um tiro por segundo  
    	if(configuracao.teclasPressionadas[32] && timer.ultimoTiro()){
    		//adiciona um novo tiro a tela
    		view.loadTiro("player1");
    	};
 	};
 	
 	me.moveTiros = function(){
 		for(var tiro in configuracao.tiros){
 			//verifica de quem é o tiro
 			if(configuracao.tiros[tiro].tipo == "player"){
 				//verifica se o tiro vai sair da tela
 				if(configuracao.tiros[tiro].y > 0){
 					configuracao.tiros[tiro].up();
 				}else{
 					configuracao.tiros[tiro].active = false;
 				};
 			};
 		};
 	};
 	
};


//agora vai armazenar quais teclas estao sendo precionadas num array
document.addEventListener('keydown', function (e) {
    var keyCode = e.which;
    configuracao.teclasPressionadas[keyCode] = true;
    if (keyCode == 38 || keyCode == 40 || keyCode == 32) e.preventDefault(); //disables page viewing
});
document.addEventListener('keyup', function (e) {
    var keyCode = e.which;
   //verifica se nao é a tecla de tiro, pq a tecla de tiro so desabilita quando chega no final da tela
    if(keyCode != 38){
    	configuracao.teclasPressionadas[keyCode] = false;
    }
});



function verificaAcerto(avatarAtual, ufo1Avatars, backgroundLayer){
	if(avatarAtual.tiro.getY()>=ufo1Avatars.getY()-15 && 
	   avatarAtual.tiro.getY()<=ufo1Avatars.getY()+15 &&
	   avatarAtual.tiro.getX()>=ufo1Avatars.getX()-20 && 
	   avatarAtual.tiro.getX()<=ufo1Avatars.getX()+20){
		placar++;
		ufo1Avatars.setX(aleatorio(barraLateral, width-barraLateral));
		loadBackground(backgroundLayer);
		return true;
	};
	return false;
};
    